COMMAND
도스에서는 COMMAND.COM이 명령어 프롬프트에서 입력된 명령어를 해석하여 해당 응용 프로그램이나 명령어를 실행하는 명령어 해석기로 사용된다. 컴퓨터를 처음 시작하는 경우에도 COMMAND.COM이 디폴트 명령어 해석기로 사용된다. 그러나 명령어 해석기를 변경하거나 명령어 해석기의 옵션을 변경할 필요가 있는 경우에는 명령어 프롬프트 혹은 CONFIG.SYS에서 명령어 해석기를 지정해야 한다.
도스를 배우기 어렵고 사용하기 어렵게 만드는 원인 중의 하나가 바로 명령어 해석기로 사용되는 COMMAND.COM 때문에 발생하였다. 따라서 도스의 명령어 해석기의 단점을 보완한 명령어 해석기를 따로 사용하는 경우가 있다. 이러한 명령어 해석기로 노턴의 NDOS.COM을 들 수 있다.
새로운 명령어 해석기를 종료하고 원래의 명령어 해석기로 되돌아가기 위해 EXIT 명령어를 사용한다. 단, 컴퓨터가 시작될 때 최초로 사용된 명령어 해석기는 종료할 수 없다.
■ 명령어 위치
도스로 부팅할 수 있는 모든 디스크의 루트 디렉토리(폴더)에 들어 있다.
■ 사용법
COMMAND [[drive:]path] [device] [/E:nnn] [/L:nnn] [/U:nnn] [/P] [/MSG] [/LOW]
[/Y [/[C|K]command]]
CONFIG.SYS에서 명령어 해석기를 지정하려면 다음과 같이 사용한다.
SHELL=[[drive:]path]COMMAND.COM [[drive:]path] [device] [/E:nnn] [/L:nnn] [/U:nnn] [/P]
[/MSG] [/LOW] [/Y [/[C|K]command]]
■ 옵션 및 매개변수

[drive:]path | 명령어 해석기의 일부분이 다시 적재되어야 할 필요가 있을 때 COMMAND.COM 파일이 있는 위치를 지정한다. COMMAND.COM이 루트 디렉토리에 있지 않으면 반드시 경로를 포함시켜야 한다. 이 매개 변수는 COMSPEC 환경 변수에 지정하여 사용한다.
device | 명령어의 입출력을 위한 장치를 지정한다. 명령어의 입출력은 디폴트로 콘솔이 설정된다. 콘솔 장치라는 것은 기본 입출력 장치를 말하는 것으로 키보드와 모니터가 콘솔 장치다. 즉, 여기서는 키보드가 기본 입출력 장치가 되는 것이다.
/e:nnn | 환경의 크기를 바이트 단위로 지정하기 위하여 사용하는 것으로, 지정할 수 있는 유효한 값의 범위는 256∼32768 사이의 값을 16 바이트 단위로 지정한다. 만약, 16바이트의 배수를 지정하지 않는 경우에는 가장 근사한 16바이트의 배수가 사용된다. 디폴트 값은 256바이트이다.
/L:nnn | 내부 버퍼의 길이를 바이트 단위로 지정한다. 지정할 수 있는 값은 128∼1024 사이의 값으로, 반드시 /P 옵션과 함께 지정해야 한다.
/u:nnn | 입력 버퍼의 길이를 바이트 단위로 지정한다. 지정할 수 있는 값은 128∼255 사이의 값으로, 반드시 /P 옵션과 함께 지정해야 한다.
/p | 이 옵션은 EXIT 명령어에도 종료되지 않는 새로운 명령어 해석기의 상주 부분을 메모리에 탑재하는데, 일반적으로 Config.sys에서 SHELL 명령어와 함께 사용된다. 만약, Config.sys에 SHELL 명령어가 없으면 시동 드라이브의 루트 디렉토리에 있는 COMMAND.COM을 /p 옵션과 함께 사용한다.
/msg | 이 옵션은 플로피 디스크로 컴퓨터를 시동하는 경우에만 사용하는 옵션으로, 명령어 해석기의 모든 오류 메시지를 메모리에 탑재하기 위해 사용한다. 이 옵션을 지정하려면 반드시 /p 옵션과 함께 지정되어야 한다.
/Low | COMMAND.COM이 메모리에 탑재될 때 상용 메모리를 이용하도록 한다.
/y | 이 옵션은 사용자가 작성한 배치 파일이 정상적으로 작성되었는지를 확인할 때 유용한 옵션으로, 이 옵션을 지정하면 배치 파일 안에 포함되어 있는 각각의 명령어를 단계별로 수행한다. 이 옵션은 단독으로 사용될 수 없고, 반드시 /c 혹은 /k 옵션과 함께 사용되어야 한다.
/c command | command에 의해 지정된 명령어를 실행한 후, 명령어 해석기의 실행을 중지하고 원래의 명령어 해석기로 복귀한다. 이 옵션은 주로 윈도우에서 도스용 프로그램을 실행하기 위해 사용되는 것으로, 해당 응용 프로그램을 종료한 후에 윈도우로 복귀한다.
/k command | command에 의해 지정된 명령어를 실행한 후에도 원래의 명령어 해석기로 복귀하지 않고 명령어 해석기를 계속 실행한다. 윈도우에서 이 옵션을 사용하여 도스용 프로그램을 실행하면 해당 프로그램을 종료한 뒤에도 윈도우로 복귀하지 않는다. 윈도우로 복귀하려면 EXIT 명령어를 사용한다.

■ 참고 사항
☞ 환경 크기의 제한
에서는 /e 옵션과 함께 지정되는 환경 파일의 크기를 256∼32768 바이트 사이의 값 중에서 16 바이트 단위로 지정하여야 한다. 만약, nnnnn의 값이 256보다 작거나 32768보다 크면 256바이트가 디폴트 값으로 할당되고 다음과 같은 메시지가 나타난다.
Parameter value not in allowed range.
☞ 입출력 장치의 변경
도스에서는 device 매개변수를 사용하여 입출력을 다른 장치로 지정할 수 있다. 예를 들어, AUX나 혹은 COM1 등을 지정할 수 있다.
디폴트로 키보드를 사용하는데, 다른 장치에서 다시 키보드로 변경하려면 다음과 같이 CON을 사용한다. command con
☞ 여러 명령어 해석기의 동시 실행
COMMAND 명령어를 사용하여 새로운 명령어 해석기를 시작하면 새로운 명령 환경을 만드는데, 새로운 명령 환경은 원래 환경의 복사본으로 원래 환경에 영향을 주지 않는다. 이것은 새로운 명령어 해석에 관한 환경을 설정할 수 있다는 의미이다.
새로운 명령 환경의 크기는 디폴트로 256바이트 사용하는데, 사용자는 필요한 경우 특정한 명령 환경의 크기를 지정할 수 있다. 명령 환경의 크기를 변경하기 위하여 /E 옵션을 사용하는데 현재 명령 환경의 크기는 이전에 /E 옵션으로 지정한 명령 환경의 크기가 아닌 실제 사용될 메모리의 크기를 의미한다.
☞ 임시 메모리와 상주 메모리
명령어 해석기로 사용되는 COMMAND.COM은 상용 메모리와 상위 메모리 영역에 탑재되는데, 상용 메모리에는 상주하는 부분이 탑재되고 오류 메시지 등 임시로 사용되는 부분은 상위 메모리에 탑재된다. 특정 응용 프로그램은 COMMAND.COM의 임시 메모리 영역을 사용하기도 하는데, 만약 상위 메모리 영역에 있는 임시 메모리 부분이 필요한 경우에는 이를 다시 탑재하기 위하여 COMMAND.COM을 검색한다.
환경 변수 중에서 COMSPEC은 디스크에서 COMMAND.COM의 위치를 지정하기 위하여 사용하는데, 만약 COMSPEC이 플로피 디스크로 지정되어 있으면 명령어 해석기가 들어 있는 디스켓을 요구하게 된다.
☞ 옵션 /MSG 사용하기
도스에서 처리하는 대부분의 오류 메시지는 메모리에 상주하는 것이 아니라 COMMAND.COM 파일에 있는 것을 필요한 경우 해당 메시지를 검색한다. 만약, 하드디스크 대신 플로피디스크로 컴퓨터를 시동하였는데 A 드라이브에 있는 플로피 디스크에 COMMAND.COM이 없으면 오류 메시지를 찾을 수 없다.
이 경우 완전한 오류 메시지 대신 다음과 같은 메시지가 나타난다.
Parse error
Extended error
플로피 디스크로 컴퓨터를 시동하는 경우에는 /msg 옵션을 사용함으로써 완전한 오류 메시지가 나타나도록 할 수 있다. 이것은 명령어 해석기의 오류 메시지를 메모리에 상주시키기 때문인데, /msg 옵션을 사용하기 위해서는 반드시 /p 옵션과 함께 사용하여야 한다.
☞ 내부 명령어
도스 명령어는 외부 명령어와 내부 명령어로 분류된다.
외부 명령어는 파일 형태로 존재하는 명령어로 대부분 많은 옵션과 매개 변수를 사용하고 다소 복잡한 구조를 가지고 있다.
내부 명령어는 COMMAND.COM이 스스로 처리하는 명령어로 비교적 간단한 구조를 갖는 명령어가 여기에 속한다. 따라서 내부 명령어는 별도의 실행 파일을 가지고 있지 않다.
다음은 COMMAND.COM으로 처리할 수 있는 내부 명령어의 목록이다.

BREAK | CALL | CHCPK | CHDIR (CD) | CLS
COPY | CTTY | DATE | DEL (ERASE) | DIR
ECHO | EXIT | FOR | GOTO | IF
LOADHIGH (LH) | MKDIR (MD) | PATH | PAUSE | PROMPT
REM | RENAME (REN) | RMDIR (RD) | SET | SHIFT
TIME | TYPE | VER | VERIFY | VOL

■ 사용 예
도스 명령어 해석기가 현재의 프로그램에서 새로운 명령어 해석기로 사용하면서 MY.BAT 라는 배치 프로그램을 곧바로 실행하도록 지정하려면 다음과 같이 명령어 해석기를 새로 지정한다. 단, MY.BAT을 실행한 직후 원래의 명령어 해석기로 복귀하도록 지정한다.
command /c my.bat
Config.sys에서 명령어 해석기의 위치가 C: 드라이브의 DOS 디렉토리에 위치하고 있고, 명령어 해석기의 환경 크기를 1024바이트로 지정하려면 다음과 같이 SHELL 명령어를 사용한다.
shell=c:\dos\command.com c:\dos\ /e:1024
윈도우에서 도스용 프로그램을 실행하려면 [시작 - 실행]에서 명령어를 입력하면 된다. 이 경우 지정된 도스 명령어는 종료와 함께 윈도우로 복귀한다.
만약, 도스용 프로그램을 종료한 뒤에도 윈도우로 복귀하지 않도록 하려면 [시작 - 실행]에서 다음과 같이 명령어 해석기를 지정한다. 단, 실행할 도스용 프로그램의 이름은 Format이고 A: 드라이브를 포맷하는 명령이라고 간주한다.
command.com /k "format a: /u"
위의 예에서 /k 옵션에 지정하는 명령어가 스페이스로 분리되어 있으므로 /u 옵션이 디스크를 포맷하는 FORMAT 명령어에 주어진 옵션이라는 것을 나타내기 위하여 반드시 따옴표로 묶어 주어야 한다. 만약, 따옴표로 묶어주지 않으면 COMMAND.COM의 옵션으로 간주되어 오류 메시지가 나타난다.
새로운 명령어 해석기를 사용하여 새로 작성한 배치 프로그램의 이상 유무를 점검하려면 다음과 같이 COMMAND 명령어를 사용한다. 단, 배치 프로그램의 점검을 끝낸 후 원래의 명령어 해석기로 되돌아 가고, 새로 작성된 배치 프로그램의 이름은 MY.BAT 파일이라고 가정한다.
command /y /c my.bat
위와 같이 MY.BAT 프로그램을 실행하면 다음과 같이 MY.BAT 파일을 실행할 것인지를 사용자에게 확인한다.
MY.BAT [Y/N]?
배치 프로그램을 살행하기 위하여 <Y>를 누르면 MY.BAT 파일 안에 있는 각각의 명령어 라인에 대하여 사용자에게 실행할 것인지를 위와 같은 형식으로 확인한다. 명령어 중에서 실행하지 않아도 되는 명령어에 대해서는 <N>을 누름으로써 다음 명령어로 넘어갈 수 있다.
만약, MY.BAT 배치 프로그램의 실행을 중단하려면 키보드 상에서 <Ctrl+C>를 누른다.